package tools

import (
	"crypto/md5"
	"encoding/hex"
	"fmt"
)

func CheckSign(data []byte) bool {
	// 生成签名
	signature := GenerateMD5Signature(data)
	fmt.Printf("Generated Signature: %s\n", signature)
	// 校验签名
	isValid := VerifyMD5Signature(data, signature)
	return isValid
}

// VerifyMD5Signature 校验数据的 MD5 签名
func VerifyMD5Signature(data []byte, signature string) bool {
	generatedSignature := GenerateMD5Signature(data)
	return generatedSignature == signature
}

// GenerateMD5Signature 计算数据的 MD5 签名
func GenerateMD5Signature(data []byte) string {
	hash := md5.New()
	hash.Write(data)
	return hex.EncodeToString(hash.Sum(nil))
}
